/*
 * Copyright (c) 2017. 深圳一七科技. All rights reserved.
 */

package com.yiqi.liebang.feature.wallet.contract;

import com.suozhang.framework.framework.BasePresenter;
import com.suozhang.framework.framework.BaseView;
import com.yiqi.liebang.entity.bo.BanlanceBo;
import com.yiqi.liebang.entity.bo.PageBo;
import com.yiqi.liebang.entity.bo.PayBo;
import com.yiqi.liebang.entity.bo.PublicBo;
import com.yiqi.liebang.entity.bo.RechargeBo;

import java.util.List;

import io.reactivex.Observable;

/**
 * LIJUWEN
 *
 * @email yiyayiyayaoljw@gmail.com
 * @date 2018/7/11 9:06
 */
public interface WalletContract {

    interface Model {
        Observable<PayBo> userRechagre(RechargeBo rechargeBo);

        Observable<PublicBo> userWithdraw(RechargeBo rechargeBo);

        Observable<BanlanceBo> getUserAssetsDetail(PageBo rechargeBo);

    }

    interface View extends BaseView {
        void showSuccess(String error);
        void showPaySuccess(PayBo classifyBos);

        void userWithdrawSucc(PublicBo entity);

        void showTransactionListSuccess(List<BanlanceBo.ListData> workBoPageData);

        void showError(String error);

        void showTransactionListMoreSuccess(List<BanlanceBo.ListData> msg);

        void showTransactionListMoreError(String msg);

        void showTransactionListEmpty();


    }


    interface Presenter extends BasePresenter {
        void userRechagre(int payStatus, double transactionamount);

        void userWithdraw(int payStatus, double transactionamount, String payeeAccount,String userOpenid);
        void getUserAssetsDetail(  int pageIndex,
                                   int pageSize);
        void getUserAssetsDetailMore(  int pageIndex,
                                       int pageSize);
    }
}
